import {reqGetSearchInof} from "@/api";
//search模块的小仓库
//state:仓库存储数据的地方
const state = {
    searchList: {}
};
//mutations:修改state的唯一手段
const mutations = {
    GETSEARCHLIST(state, searchList) {
        state.searchList = searchList
    }
};
//action:处理action, 可以书写自己的业务逻辑，也可以处理异步
const actions = {
    async getSearchList({commit}, params = {}) {
        //当前这个reqGetSearchInof这个函数在调用获取服务器数据的时候， 至少传递一个参数（空对象）
        //params形参： 是当用户派发action的时候，第二个参数传递过来的，至少是一个空对象
        let result = await reqGetSearchInof(params)
        if (result.code === 200) {
            commit('GETSEARCHLIST', result.data)
        }
    }
};
//getters:理解为计算属性，用于简化仓库数据，让组件获取仓库的数据更加方便
//可以把将来在组件当中需要用的数据简化一下
const getters = {
    //当前形参state, 当前仓库中的state，并非大仓库那个state
    goodsList(state) {
        //这样书写有问题  可能返回undefined  如果服务器的数据回来 数组没问题
        //如果没有网络 返回空
        return state.searchList.goodsList || []
    },
    trademarkList(state) {
        return state.searchList.trademarkList || [];
    },
    attrsList(state) {
        return state.searchList.attrsList || [];

    }
};

//对外暴露Store类的一个实例
export default {
    state,
    mutations,
    actions,
    getters
}